//
//  PropertyObserver.swift
//  ObserveTiming
//
//  Created by 范晓鑫 on 2021/10/31.
//

import Foundation

@dynamicCallable
public struct OCPropertyObserveManager<OCType: NSObject, ValueType, OptionalValueType, OBType> {
    let obj: OCType
    let ob: OBType
    public func before(_ action: (OBType, ValueType) -> Void) {
        
    }
    public func after(_ action: (OBType, ValueType) -> Void) {
        
    }
    public func dynamicallyCall(withArguments: [(OBType, ValueType) -> Void]) {
        // 监听
    }
}

@dynamicCallable
public struct OCPropertyUnobserveManager<OCType: NSObject, ValueType, OptionalValueType, OBType> {
    let obj: OCType
    let ob: OBType
    public func before() {
        
    }
    public func after() {
        
    }
    public func dynamicallyCall(withArguments: [Void]) {
        // 取消监听
    }
}
